Note: This tutorial assumes that you have completed the previous tutorials: ROS tutorials.
(!) Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags.

How to use a Crust Crawler Smart Arm with Dual Gripper with the smart_arm node

Description: This tutorial describes how to configure the smart_arm node for use with your Crust Crawler Smart Arm with Dual Gripper.

Keywords: robotis, dynamixel, crustcrawler, smart arm

Tutorial Level: BEGINNER

Next Tutorial: smart_arm_controller/Tutorials/Controlling a Smart Arm

Compiling

First, you need to compile all dependencies, ensuring all ROS msgs are generated.

$ rosmake smart_arm_controller

Configuring ROS Parameters

Controller Manager Launch File Parameters

Using a text editor, open the launch/smart_arm.launch in the smart_arm_controller package. Verify that the port name and baudrate are consistent with your hardware's configuration. By default, the Dynamixel motors operate at a baudrate of 57,600 or 1,000,000 bps. If you are using custom Dynamixel ids you can change the min_motor_id and max_motor_id parameters to account for large id numbers. The parameters in the launch file will look something like this:

Could not fetch external code from 'http://ua-ros-pkg.googlecode.com/svn/trunk/arrg/crustcrawler_smart_arm/smart_arm_controller/launch/smart_arm.launch': HTTP Error 404: Not Found

YAML File Parameters

Using a text editor, open the config/smart_arm.yaml in the smart_arm_controller package. Verify that the motor ids in the YAML file are consistent with your hardware configuration. For joints with two motors, make sure to specify the left motor id first (aka, the motor_master). The YAML file will look something like this:

Could not fetch external code from 'http://ua-ros-pkg.googlecode.com/svn/trunk/arrg/crustcrawler_smart_arm/smart_arm_controller/config/smart_arm.yaml': HTTP Error 404: Not Found

An explanation of these parameters can be found in the dynamixel_controllers package documentation.

Test Configuration

Using the launch file launch/smart_arm.launch you can test your configuration.

$ roslaunch smart_arm_controller smart_arm.launch

You should see the standard ROS launch output followed by something like this:

  • [INFO] 1295282870.051953: Pinging motor IDs 1 through 8...
    [INFO] 1295282870.103676: Found motors with IDs: [1,2,3,4,5,6,7,8].
    [INFO] 1295282870.141504: There are 8 AX-12+ servos connected
    [INFO] 1295282870.141857: Dynamixel Manager on port /dev/ttyUSB0 initialized

Verify that the motor ids on your Smart Arm are consistent with those found by the smart_arm node.

Joint State Publishing

Now that the smart_arm node is configured for your Smart Arm hardware, you can look at the joint state topic and see the feedback from the motors. To see the joint state messages, echo one of the joint controller topics:

$ rostopic echo /shoulder_pan_controller/state

You should see something like this:

Wiki: smart_arm_controller/Tutorials/Getting Started with a Smart Arm (last edited 2011-09-10 16:25:39 by AntonsRebguns)